// strcmp

#include <stdio.h>
#include <string.h>

int mycmp(const char* s1, const char* s2)
{
    while (*s1 == *s2 && *s1 != '\0')
    {
        s1++;
        s2++;
    }

    // 如果不同，只会返回不同处的差值，所以不能作为运算值
    return *s1 - *s2;
}

int main(int argc, char const *argv[])
{
    // strcmp函数
    // int strcmp(const char *s1, const char *s2);
    // 比较两个字符串，返回：
    //  0: s1 == s2
    //  1: s1 > s2
    // -1: s1 < s2
    char s1[] = "abc";
    char s2[] = "abc  ";
    char s3[] = "Abc";
    // 比较不能使用 s1 == s2，因为数组的比较永远不相同（地址不同
    printf("%d\n", s1 == s2);
    printf("%d\n", strcmp(s1, s2));
    printf("%d\n", strcmp(s2, s3));
    printf("%d\n", strcmp(s3, s2));
    // 老师的演示中，返回值是两个字符串ASCII的差值，但是我的不是

    printf("%d\n", mycmp(s2, s1));
    
    return 0;
}